package com.cloud.model.log;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 日志注解
 * 
 * @author sunsz
 *
 */
// 用于描述注解的使用范围:
// 1.CONSTRUCTOR:用于描述构造器
// 2.FIELD:用于描述域
// 3.LOCAL_VARIABLE:用于描述局部变量
// 4.METHOD:用于描述方法
// 5.PACKAGE:用于描述包
// 6.PARAMETER:用于描述参数
// 7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
@Target({ ElementType.METHOD })
//指生命周期:此处为运行时
@Retention(RetentionPolicy.RUNTIME)
public @interface LogAnnotation {

	/**
	 * 日志模块
	 *
	 * @return
	 * @see com.cloud.model.log.constants.LogModule
	 */
	String module();

	/**
	 * 记录参数<br>
	 * 尽量记录普通参数类型的方法，和能序列化的对象
	 * 
	 * @return
	 */
	boolean recordParam() default true;
}
